Traditionally, programming of broadcast and cable television and radio, including content (i.e., the video or audio program) and (the placement of) ads in a video or audio signal stream, has followed a linear model. Programming may be linear in the sense that a program begins and is streamed and in progress when a user chooses to view entertainment content. FIG. 1 illustrates a conventional linear or video-on-demand (VOD) model for advertisement placement. Entertainment content 2, when processed as a digital data stream over a cable network, may be divided into a number of time intervals. The time intervals 4 include time reserved for a viewed program (content), such as “Golden Girls.” The intervals 6, 8, 9 represent sections of time reserved for advertisements or “avails.” These “avails” may be viewed as advertisement placement opportunities. As used herein, a “placement opportunity” was traditional called an avail and is sometimes referred to as a slot (spots into slots). A placement opportunity (PO) is a construct that represents an opportunity to insert an advertisement or entertainment content, and defines the rules for that opportunity, such as its duration, interactivity, ownership, and technical constraints.
As used herein, the term “binding” refers to an identification of signals and content within a placement opportunity (PO). PO's are frequently created for broad amounts of content that are not yet published (i.e., any show on TNT network in the evening). When the show airs and a signal is detected, the signal is bound to the relevant PO's for that show.
As used herein, the term “impression” refers to a showing of an advertisement to a single viewer. For example, if a 30 second spot is placed in 50,000 video-on-demand (VOD) streams and it is known that 30,000 of the streams actually played the ad, then 30,000 impressions of that advertisement have been generated.
As used herein, a “status notification” may be, but is not limited to, an HTTP call from a VOD server with a unique ID that was created when a decision was delivered.
As used herein, the term “break” refers to one or more spaces in a stream between entertainment content. For example, a group of 4 consecutive 30 second spots between 2 segments of “Two and a Half Men” may be considered as a single break. One or more advertisements may fill a break. As used herein, the term advertisement may refer to a one advertisement or a plurality of advertisements collectively inserted or insertable into an individual break.
As used herein, an estimated starting location of a break in a signal stream is referred to as a signal point. In the context of advertisement placement, these signal points may be referred to as advertisement signal points.
In non-linear systems, such as Video-on-Demand (VOD), the intervals 6, 8, 9 may take on new meanings. The interval 6 is called a pre-roll, i.e., the space in a video that occurs immediately after a user clicks to start a VOD video. The interval 9 is known as a post-roll, i.e., the space after all of the VOD video segments have finished playing. The intervals 8 may be mid-rolls, i.e., mini-breaks in the middle of a VOD video, or may be interstitials, i.e., pod-like locations between consecutive VOD video segments. VOD advertisement placement opportunities may appear based on space, time, content, and user context and may be highly non-linear (i.e., the user chooses to initiate the playing of content and in response, the content starts). All of the intervals 6, 8, 9 in such play lists are ripe for the insertion of advertisements, i.e., advertisement placement opportunities.
FIG. 2 depicts a configuration of a conventional Internet-based cable television infrastructure 200 for performing advertising placement decisions in signal streams. On TV, the advertising network was formerly the national network, the cable network, or the cable operator. However, unlike the Internet, where browsers access/display content and then are separately “referred” to a shared advertisement network, the Internet-based cable television infrastructure 200 selects and assembles both the advertisement and the content together and delivers the combined result to customers' “smart appliances” 202a-202n (e.g., Internet ready televisions, radios, smartphones, tablets, PCs, etc.).
Recently, smart appliances 202a-202n, such as Internet-ready televisions, have become capable of receiving content from Internet streaming services, such as Netflix movies, Pandora streaming radio, etc., over WiFi or direct Ethernet connections. When a user clicks on an icon for an “app” that appears on the television set corresponding to one of these services, the content is streamed to the smart appliance 202a-202n from a content delivery network (CDN) 204 directly to the application running in the smart appliance 202a-202n without the need for a set top box.
A set top box may be configured to decode an analog representation of two states of a digital signal, as is known in the art, that is continuously streamed and pushed to the set top box through a broadcast facility over a coaxial or fiber optic cable and the set top box tunes to that channel and displays the content. When a user watches Internet-delivered program content, a browser within the smart appliance 202a-202n fetching video in predetermined time chunks—generally two, sometimes three, sometimes ten second chunks. The fetched chunks of video are seamlessly stitched together dynamically in the application software of the smart appliance 202a-202n and then displayed so as to appear as a smooth video on the smart appliance 202a-202n. 
A Multiple System/Service Operator (MSO—a cable TV organization that owns more than one cable system and may prove broadband Internet service) may wish to rebroadcast video streams on smart appliances. Unfortunately, every connected device, including smart appliances, needs to obtain video in the format that it can consume. Apple, Microsoft, Adobe, etc., have very specific and incompatible formats. To overcome this problem, each of these companies has constructed facilities called content delivery networks (CDN) 204 where a “set top box” for each channel is configured to receive broadcasts from satellites.
A signal stream received by a “set top box” from upstream devices 206 is fed to an encoder 208 to transform the signal stream to a transport signal stream of one or more bit rates and/or formats and a packager 210 to fragment the transport signal stream into the predetermined (e.g., 2 second) segments of data. The encoder 208 may convert the signal stream to one or more of a plurality of formats (e.g., H264, MPEG2, MPEG4, etc.) and resolutions (e.g., standard definition at 640p, or high definition at, for example 720p, 1080i, 1080p, etc.). A distinct transport signal stream may be provided to the packager 210 in each of the plurality of formats and resolutions. The packager 210 may divide the transport signal streams into segments representing intervals of time or “chunks” of video, audio, etc. (e.g., between 2 and about 10 second intervals) according to a standard format associated with a specific vendor (e.g., Microsoft, Apple, Adobe, etc.). These segments are then stored at the CDN 204 on server farms located physically close to where the content is to be delivered.
To identify a particular channel data stream or “session”, including times when a program has ended and before the next program begins, i.e., a placement opportunity, a cue-tone is inserted in the channel data stream a predetermined time before the next program begins. The cue-tone may be an instance of an SCTE-35 packet.
An observer 210, which may be the transcoder 208, informs placement opportunity information service (POIS) 211 of the arrival of the cue tone for subsequent placement of one or more advertisements into the channel data stream by an advertisement service (ADS) 214. If the ADS 214 is known to the POIS 211, then the POIS 211 notifies the ADS 214 of the cue tone notification. The advertisement service 214, in turn, is waiting for the subsequent arrival of requests from a CDN 204 to place advertisements into breaks (i.e. one or more of the segments) in the channel data stream (session).
MSOs, national networks, and local networks prefer to know whether an advertisement has been played and watched by a subscriber. More particularly, advertisers may be compensated by the MSOs and networks based on the proportion of an advertisement that has been watched by a subscriber. Compensation has been traditionally based on the number of quartiles of an advertisement that has been watched: 0%, 25%, 50%, 75%, to 100%. Equipment manufacturers have traditionally provided this feature on one of two ways: by building intelligence into each smart appliance (e.g., 202a), or by building intelligence into a reporting network, e.g., a cloud computing network, while not altering exiting smart appliances 202a-202n. Both techniques may employ what is known as a manifest file. As used herein, a manifest file, a manifest, or a session manifest, refers to a listing or index of what is contained in each of the segments of a session maintained by the CDN 204. More particularly, the session manifest may include a list of URLs which point to each of the segments and notes the type of segment: content or advertisement.
When intelligence is built into a smart appliance (e.g., 202a), the smart appliance 202a may (1) maintain a copy of the session manifest, (2) perform the function of splicing an advertisement into a placement opportunity that was formerly performed by the ADS 214, (3) mark the session manifest for each segment played, and (4) report a proportion of a session (e.g., the number of segments) played to the MSO or network.
MSOs and networks, however, may prefer to employ any manufacturer's smart appliance (e.g., 202a). Both the MSOs and the networks have been moving toward providing their own viewing experience by providing only applications “apps” to a subscriber's equipment without altering the equipment.
When intelligence is built into the network, corresponding reporting networks may need to maintain a separate manifest for each viewer session. Still further, the reporting network needs to test and operate their reporting hardware and software with a multiplicity of transport signal stream encoding formats and resolutions, vendor packaging standards, and vendor-specific smart appliance software and hardware. Maintaining a manifest for each viewer, according to each encoding format and resolution, packaging format, and vendor-specific smart appliance software and hardware may require processing power on the order of hundreds of thousands of threads of execution, translating to a need to maintain and operate a large number of multi-threaded computers. Moreover, even if a thread indicates that an advertisement was downloaded, it does not mean that the advertisement was played. The advertisement may be buffered and flushed before viewing.
Ideally, MSOs and networks prefer to have flexibility in working with players and reporting networks of any type.
Accordingly, what would be desirable, but has not yet been provided, is a method and system for accurately reporting a percentage of each advertisement viewed by a subscriber during a viewing session without significantly modifying existing smart appliances or reporting networks.